1. Field of the Invention
The present invention is related generally to a data processing system and in particular to a method and apparatus for migrating resource adapter components. More particularly, the present invention is directed to a computer implemented method, apparatus, and computer usable program code for providing a common framework to automatically migrate project development and runtime artifacts to a new version of a resource adapter.
2. Description of the Related Art
A resource adapter is a system level software component that an application uses to connect to an enterprise information system (EIS). The resource adapter plugs into an application server and provides connectivity between the EIS, application services, and the enterprise application components. The resource adapter is frequently updated to a new version of the resource adapter.
Resource adapters are frequently updated to support additional EIS connectivity features, to support a new EIS version, in response to changes to the external resource configuration utilized by the resource adapter, due to improvements in resource adapter internal interfaces, in response to a request to support a newer version of a Java Connectivity Architecture (JCA), or any combination of these reasons.
Currently, when a resource adapter component is upgraded to a different version, a resource adapter developer creates the new version of the resource adapter component, identifies changes to application artifacts, component runtime configurations, and component runtime resources that are required to support use of the new version of the resource adapter. The resource adapter developer manually creates instructions to the user that explain migration changes.
In this solution, a programmer manually creates an individual migration procedure for each new resource adapter version. This solution provides a generic procedure that requires additional user documentation and software support to adjust for the differences and customizations on different computer systems. However, to implement the migration, a user follows the instructions and manually performs migration on applications artifacts, component runtime configuration, and component runtime resources to use the new version of the resource adapter component. Thus, this solution can be time consuming, labor intensive, burdensome, and expensive for both the developer and the user implementing the update to the newer version.
In another solution, the resource adapter developer creates a tool to automate migration for the user. In this solution, the resource adapter logic for a newer version of a resource adapter provides custom migration logic to carry out the migration procedure. Thus, a user can invoke the tool to perform changes automatically for each adapter. Although this solution saves the user some time and effort, this solution continues to require each developer to solve the same problem of creating a migration tool for each new resource adapter version.
In addition, the migration logic source code increases with each new resource adapter version because each newer version of the adapter may include migration logic capable of migrating older versions of the resource adapter. In other words, if there have been four versions of a resource adapter, a newer version of the adapter may include up to four versions of the migration tool for migrating each of the older versions to the newer version. This results in the program code becoming increasingly voluminous, complex, and expensive to create as each newer version of the resource adapter is created.